#include <stdint.h>
#include <vector>
namespace Umikaze::Core {

class Buffer {
public:
  Buffer();

  ~Buffer();

  void set(void *data, uint32_t size);

  template <typename T> void set(const std::vector<T> &buffer) {
    set((void *)&buffer[0], sizeof(T) * buffer.size());
  }

  uint32_t getUbo() { return _ubo; }

  uint32_t _size;
  void *_data;

private:
  uint32_t _ubo;
};

} // namespace Umikaze::Core